{$CLEO}
{$INCLUDE general/VehicleTypes.txt}

const
GAME_VERSION = 0@
SCRIPT_POINTER = 1@
AdditionalVars = 2@

IniFile = "CLEO\CarSpawner.ini"
PanelXSizeValue = 420.0 
end

CONST
LIST_OF_VEHICLES_ID = 0
LIST_OF_VEHICLES_INFO_SIZE = 4 
end

const
PanelHandle = 0@(AdditionalVars,1i)
RotateCameraKey = 1@(AdditionalVars,1i)
SpawnedVehicleHandle = 2@(AdditionalVars,1i)
Sprintf = 3@(AdditionalVars,1i)
ListOfVehicles_count = 4@(AdditionalVars,1i)
CText_Get = 5@(AdditionalVars,1i)
GxtTextPointer = 6@(AdditionalVars,1i)
PageStartVehicleInfoIndex = 7@(AdditionalVars,1i)

PanelSizeWidth = 10@(AdditionalVars,1i)    // + 20.0 = real panel width

CurrentResolutionX = 11@(AdditionalVars,1i)
CurrentResolutionY = 12@(AdditionalVars,1i)

SelectedVehicleInfoIndex = 13@(AdditionalVars,1i)

EnableCarSpawnerKey = 14@(AdditionalVars,1i)

TemporaryVariable_1 = 15@(AdditionalVars,1i)   
EnableTrailers = 16@(AdditionalVars,1i) 
SortListAlphabetically = 17@(AdditionalVars,1i)   
SortListByCategories = 18@(AdditionalVars,1i)

VehicleIdFontSizeX = 19@(AdditionalVars,1i)
VehicleIdFontSizeY = 20@(AdditionalVars,1i) 

EnablePedsInCar = 21@(AdditionalVars,1i) 

SpawnedTrailerHandle = 22@(AdditionalVars,1i) 
end

jump @start
0662: NOP "Car spawner"
0662: NOP "Version: 2.0"
0662: NOP "Author: fastman92"
0662: NOP "Visit my site: fastman92.tk"
{$INCLUDE functions/Detect_EXE_version.txt}

:start
0AB1: call_scm_func @Get_EXE_version_ID 0 get_version_number_to GAME_VERSION
0AB1: call_scm_func @getScriptContentPointer 0 store_script_content SCRIPT_POINTER
0AB1: call_scm_func @getAdditionalVarsLabelPointedIndex 2 label @AdditionalVariables divider 4 store_index_to AdditionalVars

0AB1: call_scm_func @GetAddress_sprintf 0 store_address_to 3@
0085: Sprintf = 3@ // (int)  

0AB1: call_scm_func @GetAddress_CText__Get 0 store_address_to 3@
0085: CText_Get = 3@ // (int) 

0AB1: call_scm_func @GetAddress_GxtTextPointer 0 store_address_to 3@
0085: GxtTextPointer = 3@ // (int)

0A99: chdir 0

0AF0: 3@ = get_int_from_ini_file IniFile section "MAIN" key "RotateCameraKey"
0085: RotateCameraKey = 3@ // (int)

0AF0: 3@ = get_int_from_ini_file IniFile section "MAIN" key "EnableCarSpawnerKey"
0085: EnableCarSpawnerKey = 3@ // (int)

0AF4: 3@s = read_string_from_ini_file IniFile section "MAIN" key "EnableTrailers"
0AB1: call_scm_func @IsStringTrueResultToVar 2 string 3@ 4@ result_to 3@
0085: EnableTrailers = 3@ // (int)

0AF4: 3@s = read_string_from_ini_file IniFile section "MAIN" key "SortListAlphabetically"
0AB1: call_scm_func @IsStringTrueResultToVar 2 string 3@ 4@ result_to 3@
0085: SortListAlphabetically = 3@ // (int)

0AF4: 3@s = read_string_from_ini_file IniFile section "MAIN" key "SortListByCategories"
0AB1: call_scm_func @IsStringTrueResultToVar 2 string 3@ 4@ result_to 3@
0085: SortListByCategories = 3@ // (int)

0AF4: 3@s = read_string_from_ini_file IniFile section "MAIN" key "EnablePedsInCar"
0AB1: call_scm_func @IsStringTrueResultToVar 2 string 3@ 4@ result_to 3@
0085: EnablePedsInCar = 3@ // (int)

0AF4: 3@v = read_string_from_ini_file IniFile section "MAIN" key "author"
    if
    3@v <> "fastman92"
    then

        hex
        7F 00
        end
     
    end

0A8F: 4@ = SCRIPT_POINTER - @ListOfVehicles // int
4@ += LIST_OF_VEHICLES_ID

5@ = 1
0A9F: 6@ = current_thread_pointer
0AB1: call_scm_func @getLocalVarOffset 2 thread 6@ var 8 store_to 6@
0A8F: 7@ = SCRIPT_POINTER - @RangeFormat // int  
   
    while true      
    0AA5: call _sprintf Sprintf num_params 3 pop 3 |parameters| Range 5@ format 7@ return_space 6@
    
    if and
    0AF0: 10@ = get_int_from_ini_file IniFile section 8@s key "start"
    0AF0: 11@ = get_int_from_ini_file IniFile section 8@s key "end"
    else_jump break
    0A8F: 12@ = 11@ - 10@ // int
    12@ += 1  
        
        while 002D:   11@ >= 10@  // (int)
        {
        if or
        10@ < 400
        10@ > 611
        else_jump @incrementCounterLoopAddVehiclesPerRange
        }
        ListOfVehicles_count += 1
        0A8C: write_memory 4@ size 4 value 10@ virtual_protect false                                        
        
        4@ += LIST_OF_VEHICLES_INFO_SIZE
        :incrementCounterLoopAddVehiclesPerRange
        10@ += 1
        end 

    Inc(5@)
    end
         
{    
    for 5@ = 400 to 611
    0A8C: write_memory 4@ size 4 value 5@ virtual_protect false
        
    4@ += LIST_OF_VEHICLES_INFO_SIZE
    4@ += LIST_OF_VEHICLES_ID
    end 
    ListOfVehicles_count += 212 
}

if
SortListAlphabetically <> false
else_jump @trytoSortListByCategories
0AB1: call_scm_func @ListOfVehicles_sortAlphabeticallyByGxtEntries 1 array_count ListOfVehicles_count

:trytoSortListByCategories
    if
    SortListByCategories <> 0 
    then  
    
    4@ = 1                      
    0A8F: 5@ = SCRIPT_POINTER - @CategoryFormat // int 
    0A9F: 6@ = current_thread_pointer
    0AB1: call_scm_func @getLocalVarOffset 2 thread 6@ var 7 store_to 6@
    
    0A8F: 11@ = SCRIPT_POINTER - @TypesByCategories // int
    0A8E: 12@ = 11@ + 1 // int
        
        while true
        0AA5: call Sprintf num_params 3 pop 3 |parameters| Category 4@ format 5@ return_space 6@
        
        if
        0AF0: 7@ = get_int_from_ini_file IniFile section "Categories" key 7@v
        else_jump break
        
        0A8C: write_memory 12@ size 1 value 7@ virtual_protect false         
              
        4@ += 1 
        12@ += 1      
        end 
        
    4@ -= 1
    0A8C: write_memory 11@ size 1 value 4@ virtual_protect false 
        
    0AB1: call_scm_func @ListOfVehicles_sortIntoCategoriesByVehicleIDs 1 array_count ListOfVehicles_count return_array_count 3@
    0085: ListOfVehicles_count = 3@ // (int)             
    end
    
:ActivateCarSpawner
wait 0
077E: get_active_interior_to 3@
if and
3@ == 0
0AB0:   key_pressed EnableCarSpawnerKey
else_jump @ActivateCarSpawner
wait 350
0A8F: 3@ = SCRIPT_POINTER - @ListOfVehicles // int
3@ += LIST_OF_VEHICLES_ID

0085: PageStartVehicleInfoIndex = SelectedVehicleInfoIndex // (int)
PageStartVehicleInfoIndex /= 12
PageStartVehicleInfoIndex *= 12
CurrentResolutionX = 0
SpawnedVehicleHandle = -1

    while true
    03F0: enable_text_draw 1
        if
        Key.VirtualKeyCode(VK_RETURN)        
        else_jump @Main_loop_tryToGetIntoVehicle
        01C3: remove_references_to_car SpawnedVehicleHandle
        jump @CloseCarSpawner
        
        :Main_loop_tryToGetIntoVehicle
        if
        Key.VirtualKeyCode(VK_SPACE)
        else_jump @Main_loop_tryToQuitCarSpawner
        4@ = Car.Model(SpawnedVehicleHandle)
        0AB1: call_scm_func @GetVehicleType 1 vehicle_ID 4@ type_to 4@        
        
        if and
        not 4@ == VEHICLE_TYPE_TRAIN
        not 4@ == VEHICLE_TYPE_TRAILER
        else_jump @CloseCarSpawner
        036A: put_actor $PLAYER_ACTOR in_car SpawnedVehicleHandle
        jump @CloseCarSpawner
        
        :Main_loop_tryToQuitCarSpawner
        if
        not Key.VirtualKeyCode(EnableCarSpawnerKey)
        else_jump @CloseCarSpawnerAndRemoveVehicle
                   
    
    :MainLoop_active
    gosub @PlayerLock
    gosub @ProcessMenuSwitching       
    
    0AB1: call_scm_func @GetCurrentResolution 0 X_size 4@ Y_size 5@
        if or    
        803B:  not CurrentResolutionX == 4@  // (int)     
        803B:  not CurrentResolutionY == 5@  // (int)
        
        then
        0085: CurrentResolutionX = 4@ // (int)
        0085: CurrentResolutionY = 5@ // (int)
        gosub @RescaleAllObjects 
                              
        0AB1: call_scm_func @GetIntRemainder 2 divisor SelectedVehicleInfoIndex % divisor 12 store_remainder_to 4@
        0085: TemporaryVariable_1 = 4@ // (int)                   
   
        gosub @CreatePanelPageWithListOfVehicles
        
            if
            TemporaryVariable_1 <> -99
            then
            090E: set_panel PanelHandle active_row TemporaryVariable_1
            end                    
        end 
        
        08D7: 6@ = panel PanelHandle active_row    
        005A: 6@ += PageStartVehicleInfoIndex  // (int)
        
            if or                 
            803B:  not SelectedVehicleInfoIndex == 6@  // (int)
            SpawnedVehicleHandle == -1
            then 
            0085: SelectedVehicleInfoIndex = 6@ // (int)
            gosub @SpawnVehicle
            end          
    
    gosub @DisplayVehicleID                                                
    wait 0
    end    

:ProcessMenuSwitching
    if
    00E1:   player 0 pressed_key 0  // left/right
    then
    0494: get_joystick 0 direction_offset_to 4@ 5@ 6@ 7@   
        if
        4@ > 0  // right
        then 
        PageStartVehicleInfoIndex += 12
            if
            801D:   ListOfVehicles_count > PageStartVehicleInfoIndex  // (int)
            then
            PageStartVehicleInfoIndex = 0
            end
        else    // left
        PageStartVehicleInfoIndex -= 12
        
            if
            PageStartVehicleInfoIndex < 0
            then
            0085: PageStartVehicleInfoIndex = ListOfVehicles_count // (int)
            PageStartVehicleInfoIndex /= 12
            PageStartVehicleInfoIndex *= 12
            end
        end    
    gosub @CreatePanelPageWithListOfVehicles                          
    end
return 

:CloseCarSpawnerAndRemoveVehicle
gosub @RemoveVehicle

:CloseCarSpawner
08DA: remove_panel PanelHandle
gosub @PlayerUnlock
wait 1000
jump @ActivateCarSpawner 

:DisplayVehicleID
0AB1: call_scm_func @ListOfVehicles_getVehicleIDbyIndex 1 index SelectedVehicleInfoIndex store_vehicle_id_to 4@

033F: set_text_draw_letter_size VehicleIdFontSizeX VehicleIdFontSizeY
045A: draw_text_1number 23.0 30.0 GXT 'NUMBER' number 4@  // ~1~
return 

:SpawnVehicle
gosub @RemoveVehicle
08D7: 4@ = panel PanelHandle active_row
005A: 4@ += PageStartVehicleInfoIndex  // (int)

0AB1: call_scm_func @ListOfVehicles_getVehicleIDbyIndex 1 index 4@ store_vehicle_id_to 4@
Model.Load(4@)
         
    while not Model.Available(4@)
    gosub @DisplayVehicleID
    wait 0
    end           
        
04C4: store_coords_to 6@ 7@ 8@ from_actor $PLAYER_ACTOR with_offset 0.0 5.5 0.3
    
00A5: 6@ = create_car 4@ at 6@ 7@ 8@
0085: SpawnedVehicleHandle = 6@ // (int)
Model.Destroy(4@)
6@ = Actor.Angle($PLAYER_ACTOR)
6@ += 270.0
Car.Angle(SpawnedVehicleHandle) = 6@
020A: set_car SpawnedVehicleHandle door_status_to 1

0A9F: 7@ = current_thread_pointer
0AB1: call_scm_func @getLocalVarOffset 2 thread 7@ var 7 store_to 7@
0A8F: 5@ = SCRIPT_POINTER - @TrailerFormat // int
0AA5: call _sprintf Sprintf num_params 3 pop 3 |parameters| VehicleID 4@ format 5@ return_space 7@

0A8F: 6@ = SCRIPT_POINTER - @buffer // int

if
EnableTrailers <> false
0AA1: return_if_false
5@ = 1
    while true      
    0AB1: call_scm_func @convIntToStr 1 num 5@ store_to 11@ 12@
    
    if
    0AF0: 13@ = get_int_from_ini_file IniFile section 7@v key 11@s
    else_jump break
    0A8C: write_memory 6@ size 4 value 13@ virtual_protect false
    
    6@ += 4 
    5@ += 1       
    end 
5@ -= 1   


if
5@ > 0
0AA1: return_if_false
0A8F: 6@ = SCRIPT_POINTER - @buffer // int
0209: 7@ = random_int_in_ranges 0 5@ 
7@ *= 4
005A: 6@ += 7@  // (int)
0A8D: 6@ = read_memory 6@ size 4 virtual_protect false

0209: 7@ = random_int_in_ranges 0 5@ 
7@ *= 4    
0A8F: 5@ = SCRIPT_POINTER - @buffer // int
005A: 5@ += 7@  // (int)
0A8D: 5@ = read_memory 5@ size 4 virtual_protect false
    
Model.Load(5@)
    
    while not Model.Available(5@)
    gosub @DisplayVehicleID
    wait 0
    end   
        
4@ = Car.Create(5@, 0.0, 0.0, 0.0)
0085: SpawnedTrailerHandle = 4@ // (int)
0893: put_trailer SpawnedTrailerHandle on_cab SpawnedVehicleHandle 
Car.RemoveReferences(SpawnedTrailerHandle)
Model.Destroy(5@)           
return  

:RemoveVehicle
    if
    Car.Defined(SpawnedVehicleHandle)
    then
    Car.Destroy(SpawnedVehicleHandle)
    end
    
    if
    Car.Defined(SpawnedTrailerHandle)
    then
    Car.Destroy(SpawnedTrailerHandle)
    end
return    

:CreatePanelPageWithListOfVehicles
08DA: remove_panel PanelHandle 
                         
32@ = 0

    while 32@ < 400
    gosub @DisplayVehicleID  
    wait 0
    end
                          
08D4: 4@ = create_panel_with_title 'CSPAWN' position 23.0 95.0 width PanelSizeWidth columns 1 interactive 1 background 1 alignment 0
0085: PanelHandle = 4@ // (int)
0A8F: 5@ = ListOfVehicles_count - PageStartVehicleInfoIndex // int
5@ -= 1
    
    if 
    5@ >= 12 
    then
    5@ = 11    
    end  

0085: 6@ = PageStartVehicleInfoIndex // (int)
    
    for 7@ = 0 to 5@
    0AB1: call_scm_func @ListOfVehicles_getVehicleIDbyIndex 1 index 6@ store_vehicle_id_to 8@
    // 08EE: set_panel PanelHandle column 1 row 7@ text_1number GXT 'NUMBER' number 8@
    0AB1: call_scm_func @GetVehicleGxtKey 1 vehicle_ID 8@ gxt_key_to 8@ 9@
    08EE: set_panel PanelHandle column 0 row 7@ text_1number GXT 8@s number 0
    6@ += 1
    end

0AB1: call_scm_func @ListOfVehicles_getVehicleIDbyIndex 1 index 3 store_vehicle_id_to 3@ 
return

:RescaleAllObjects
0AB1: call_scm_func @GetXYSizeInScreen4x3ScaleBy640x480 2 XSize 220.0 YSize 0.0 store_XSize 4@ store_YSize 5@
0087: PanelSizeWidth = 4@ // (float)

0AB1: call_scm_func @GetXYSizeInScreen4x3ScaleBy640x480 2 XSize 1.26666667 YSize 3.8 store_XSize 4@ store_YSize 5@
0085: VehicleIdFontSizeX = 4@ // (int)
0085: VehicleIdFontSizeY = 5@ // (int)
return

:PlayerLock
        if
        0AB0:   key_pressed RotateCameraKey
        then
        003E: overwrite_camera_movement_state 2
        else
        003E: overwrite_camera_movement_state 1
        end   

Actor.SetImmunities($PLAYER_ACTOR, 1, 1, 1, 1, 1)
Player.CanMove($PLAYER_CHAR) = False
return

:PlayerUnlock 
003E: overwrite_camera_movement_state 0
Player.CanMove($PLAYER_CHAR) = True
Actor.SetImmunities($PLAYER_ACTOR, 0, 0, 0, 0, 0)
return

:ListOfVehicles_sortAlphabeticallyByGxtEntries
{
 Description:	 
    Sorts list of vehicles by their GXT entries.
 Type: SET 
    
 Parameters:
   Passed:
    0@ - @ListOfVehicles array count
          
   Result:
     none
    
 Example:
  0AB1: call_scm_func @ListOfVehicles_sortAlphabeticallyByGxtEntries 1 array_count 2@
}
0AB1: call_scm_func @GetAddress_CText__Get 0 store_address_to 1@
0AB1: call_scm_func @GetAddress_GxtTextPointer 0 store_address_to 2@
0AB1: call_scm_func @GetAddress_strcmp 0 store_offset 11@

0AB1: call_scm_func @getScriptContentPointer 0 store_script_content 3@
0A8F: 13@ = 3@ - @Buffer // int
3@ -= @ListOfVehicles

0A9F: 7@ = current_thread_pointer
0AB1: call_scm_func @getLocalVarOffset 2 thread 7@ var 8 store_to 7@
                                        
    while 001D:   0@ > 5@  // (int)      
    
    0085: 6@ = 0@ // (int)
    6@ -= 1
    10@ = 0
    
        while 002D:   6@ >= 5@  // (int)            
        0A90: 8@ = 6@ * LIST_OF_VEHICLES_INFO_SIZE // int
        005A: 8@ += 3@  // (int)
        8@ += LIST_OF_VEHICLES_ID
        0A8D: 8@ = read_memory 8@ size 4 virtual_protect false        

        0AB1: call_scm_func @GetVehicleGxtKey 1 vehicle_ID 8@ gxt_key_to 8@ 9@ 
        0AA8: call_function_method 1@ struct 2@ num_params 1 pop 0 7@ store_gxt_entry 4@
        
            if
            10@ == false
            else_jump @ListOfVehicles_sortAlphabeticallyByGxtEntries_try_strcmp
            0085: 10@ = 4@ // (int)
            0085: 12@ = 6@ // (int)            
            jump @ListOfVehicles_sortAlphabeticallyByGxtEntries_incrementDoubleLoop    
            
            :ListOfVehicles_sortAlphabeticallyByGxtEntries_try_strcmp
            0AA7: call_function 11@ _strcmp num_params 2 pop 2 STRING2 10@ STRING1 4@ RESULT_TO 8@
            
                if
                8@ <= 0
                then
                0085: 10@ = 4@ // (int)
                0085: 12@ = 6@ // (int)     
                end                                 
                             
        :ListOfVehicles_sortAlphabeticallyByGxtEntries_incrementDoubleLoop        
        6@ -= 1                             
        end               
                
    0A90: 8@ = 5@ * 4 // int
    005A: 8@ += 3@  // (int)
    
    0AB1: call_scm_func @CopyMemory 4 source_adress 8@ size_to_copy LIST_OF_VEHICLES_INFO_SIZE destination_adress 13@ virtual_protect false // copy to @buffer    
        
    12@ *= 4
    005A: 12@ += 3@  // (int) 
    
    0AB1: call_scm_func @CopyMemory 4 source_adress 12@ size_to_copy LIST_OF_VEHICLES_INFO_SIZE destination_adress 8@ virtual_protect false
    
    0AB1: call_scm_func @CopyMemory 4 source_adress 13@ size_to_copy LIST_OF_VEHICLES_INFO_SIZE destination_adress 12@ virtual_protect false    
        
    5@ += 1    
    end
 
0AB2: ret 0

:ListOfVehicles_sortIntoCategoriesByVehicleIDs
{
 Description:	 
    Sorts list of vehicles by their GXT entries.
 Type: SET 
    
 Parameters:
   Passed:
    0@ - @ListOfVehicles array count
          
   Result:
     none
    
 Example:
  0AB1: call_scm_func @ListOfVehicles_sortIntoCategoriesByVehicleIDs 1 array_count 2@ return_array_count
}
{
0@ - array count
}
0AB1: call_scm_func @getScriptContentPointer 0 store_script_content 1@
0A8F: 2@ = 1@ - @TypesByCategories // int
0A8D: 3@ = read_memory 2@ size 1 virtual_protect false
2@ += 1 

1@ -= @ListOfVehicles
0A90: 4@ = 0@ * LIST_OF_VEHICLES_INFO_SIZE // int
0A8E: 5@ = 1@ + 4@ // int

0AB1: call_scm_func @CopyMemory 4 source_adress 1@ size_to_copy 4@ destination_adress 5@ virtual_protect false

4@ = 0   
    while 001D:   3@ > 4@  // (int)
    0A8D: 7@ = read_memory 2@ size 1 virtual_protect false  // read type by this category

    0085: 8@ = 5@ // (int)
    9@ = 0 
        
        while 001D:   0@ > 9@  // (int)       
        0A8E: 10@ = 8@ + LIST_OF_VEHICLES_ID // int
        0A8D: 10@ = read_memory 10@ size 4 virtual_protect false
        0AB1: call_scm_func @GetVehicleType 1 vehicle_ID 10@ type_to 10@
        
            if
            003B:   10@ == 7@  // (int)
            then
            0AB1: call_scm_func @CopyMemory 4 source_adress 8@ size_to_copy LIST_OF_VEHICLES_INFO_SIZE destination_adress 1@ virtual_protect false
            
            1@ += LIST_OF_VEHICLES_INFO_SIZE
            6@ += 1
            end        

        8@ += LIST_OF_VEHICLES_INFO_SIZE
        9@ += 1
        end
                    
    
    2@ += 1     // pointer to current type by category
    4@ += 1     // counter up to amount of types by categories
    end
     
0AB2: ret 1 6@

:ListOfVehicles_getInfoOffsetbyIndex
{
 Description:	 
    Gets the offset of vehicle info 
 Type: SET 
    
 Parameters:
   Passed:
    0@ - array index 
          
   Result:
    1@ - info offset
    
 Example:
  0AB1: call_scm_func @ListOfVehicles_getInfoOffsetbyIndex 1 index 3 store_offset_to 31@
}
0@ *= LIST_OF_VEHICLES_INFO_SIZE 
0AB1: call_scm_func @getScriptContentPointer 0 store_script_content 1@
1@ -= @ListOfVehicles
005A: 1@ += 0@  // (int)
0AB2: ret 1 offset 1@

:ListOfVehicles_getVehicleIDbyIndex
// Example: 0AB1: call_scm_func @ListOfVehicles_getVehicleIDbyIndex 1 index 3 store_vehicle_id_to 31@
0AB1: call_scm_func @ListOfVehicles_getInfoOffsetbyIndex 1 index 0@ store_offset_to 0@
0@ += LIST_OF_VEHICLES_ID
0A8D: 0@ = read_memory 0@ size 4 virtual_protect false
0AB2: ret 1 0@

{$INCLUDE functions/getAdditionalVarsLabelPointedIndex.txt}
{$INCLUDE functions/getScriptContentPointer.txt}
{$INCLUDE functions/CopyMemory.txt}
{$INCLUDE functions/integer.txt}
{$INCLUDE functions/getLocalVarOffset.txt}
{$INCLUDE general/Addresses.txt}
{$INCLUDE functions/ArrayGetValueByIndex.txt}
{$INCLUDE functions/GetVehicleGxtKey.txt}
{$INCLUDE functions/GetVehicleType.txt}
{$INCLUDE functions/ScreenScale.txt}
{$INCLUDE functions/GetCurrentResolution.txt}
{$INCLUDE functions/Math.txt}
{$INCLUDE functions/IsStringTrue.txt}
{$INCLUDE functions/LowerString.txt}

:TypesByCategories
hex
00  // number of categories, modified by script

00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
end

:RangeFormat
hex
"range_%d" 00 
end

:CategoryFormat 
hex
"Category_%d" 00
end

:TrailerFormat
hex
"trailer_%d" 00
end

:Buffer
hex
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00
end

:AdditionalVariables
hex
00 00 00 00	00 00 00 00	00 00 00 00	00 00 00 00	// Alignment
00 00 00 00		// 000@ - AdditionalVariables [00]
00 00 00 00		// 001@ - AdditionalVariables [01]
00 00 00 00		// 002@ - AdditionalVariables [02]
00 00 00 00		// 003@ - AdditionalVariables [03]
00 00 00 00		// 004@ - AdditionalVariables [04]
00 00 00 00		// 005@ - AdditionalVariables [05]
00 00 00 00		// 006@ - AdditionalVariables [06]
00 00 00 00		// 007@ - AdditionalVariables [07]
00 00 00 00		// 008@ - AdditionalVariables [08]
00 00 00 00		// 009@ - AdditionalVariables [09]
00 00 00 00		// 010@ - AdditionalVariables [10]
00 00 00 00		// 011@ - AdditionalVariables [11]
00 00 00 00		// 012@ - AdditionalVariables [12]
00 00 00 00		// 013@ - AdditionalVariables [13]
00 00 00 00		// 014@ - AdditionalVariables [14]
00 00 00 00		// 015@ - AdditionalVariables [15]
00 00 00 00		// 016@ - AdditionalVariables [16]
00 00 00 00		// 017@ - AdditionalVariables [17]
00 00 00 00		// 018@ - AdditionalVariables [18]
00 00 00 00		// 019@ - AdditionalVariables [19]
00 00 00 00		// 020@ - AdditionalVariables [20]
00 00 00 00		// 021@ - AdditionalVariables [21]
00 00 00 00		// 022@ - AdditionalVariables [22]
00 00 00 00		// 023@ - AdditionalVariables [23]
00 00 00 00		// 024@ - AdditionalVariables [24]
00 00 00 00		// 025@ - AdditionalVariables [25]
00 00 00 00		// 026@ - AdditionalVariables [26]
00 00 00 00		// 027@ - AdditionalVariables [27]
00 00 00 00		// 028@ - AdditionalVariables [28]
00 00 00 00		// 029@ - AdditionalVariables [29]
end

:ListOfVehicles
hex   
// Index    DWORD VehicleID
{000} 		00 00 00 00
{001} 		00 00 00 00
{002} 		00 00 00 00
{003} 		00 00 00 00
{004} 		00 00 00 00
{005} 		00 00 00 00
{006} 		00 00 00 00
{007} 		00 00 00 00
{008} 		00 00 00 00
{009} 		00 00 00 00
{010} 		00 00 00 00
{011} 		00 00 00 00
{012} 		00 00 00 00
{013} 		00 00 00 00
{014} 		00 00 00 00
{015} 		00 00 00 00
{016} 		00 00 00 00
{017} 		00 00 00 00
{018} 		00 00 00 00
{019} 		00 00 00 00
{020} 		00 00 00 00
{021} 		00 00 00 00
{022} 		00 00 00 00
{023} 		00 00 00 00
{024} 		00 00 00 00
{025} 		00 00 00 00
{026} 		00 00 00 00
{027} 		00 00 00 00
{028} 		00 00 00 00
{029} 		00 00 00 00
{030} 		00 00 00 00
{031} 		00 00 00 00
{032} 		00 00 00 00
{033} 		00 00 00 00
{034} 		00 00 00 00
{035} 		00 00 00 00
{036} 		00 00 00 00
{037} 		00 00 00 00
{038} 		00 00 00 00
{039} 		00 00 00 00
{040} 		00 00 00 00
{041} 		00 00 00 00
{042} 		00 00 00 00
{043} 		00 00 00 00
{044} 		00 00 00 00
{045} 		00 00 00 00
{046} 		00 00 00 00
{047} 		00 00 00 00
{048} 		00 00 00 00
{049} 		00 00 00 00
{050} 		00 00 00 00
{051} 		00 00 00 00
{052} 		00 00 00 00
{053} 		00 00 00 00
{054} 		00 00 00 00
{055} 		00 00 00 00
{056} 		00 00 00 00
{057} 		00 00 00 00
{058} 		00 00 00 00
{059} 		00 00 00 00
{060} 		00 00 00 00
{061} 		00 00 00 00
{062} 		00 00 00 00
{063} 		00 00 00 00
{064} 		00 00 00 00
{065} 		00 00 00 00
{066} 		00 00 00 00
{067} 		00 00 00 00
{068} 		00 00 00 00
{069} 		00 00 00 00
{070} 		00 00 00 00
{071} 		00 00 00 00
{072} 		00 00 00 00
{073} 		00 00 00 00
{074} 		00 00 00 00
{075} 		00 00 00 00
{076} 		00 00 00 00
{077} 		00 00 00 00
{078} 		00 00 00 00
{079} 		00 00 00 00
{080} 		00 00 00 00
{081} 		00 00 00 00
{082} 		00 00 00 00
{083} 		00 00 00 00
{084} 		00 00 00 00
{085} 		00 00 00 00
{086} 		00 00 00 00
{087} 		00 00 00 00
{088} 		00 00 00 00
{089} 		00 00 00 00
{090} 		00 00 00 00
{091} 		00 00 00 00
{092} 		00 00 00 00
{093} 		00 00 00 00
{094} 		00 00 00 00
{095} 		00 00 00 00
{096} 		00 00 00 00
{097} 		00 00 00 00
{098} 		00 00 00 00
{099} 		00 00 00 00
{100} 		00 00 00 00
{101} 		00 00 00 00
{102} 		00 00 00 00
{103} 		00 00 00 00
{104} 		00 00 00 00
{105} 		00 00 00 00
{106} 		00 00 00 00
{107} 		00 00 00 00
{108} 		00 00 00 00
{109} 		00 00 00 00
{110} 		00 00 00 00
{111} 		00 00 00 00
{112} 		00 00 00 00
{113} 		00 00 00 00
{114} 		00 00 00 00
{115} 		00 00 00 00
{116} 		00 00 00 00
{117} 		00 00 00 00
{118} 		00 00 00 00
{119} 		00 00 00 00
{120} 		00 00 00 00
{121} 		00 00 00 00
{122} 		00 00 00 00
{123} 		00 00 00 00
{124} 		00 00 00 00
{125} 		00 00 00 00
{126} 		00 00 00 00
{127} 		00 00 00 00
{128} 		00 00 00 00
{129} 		00 00 00 00
{130} 		00 00 00 00
{131} 		00 00 00 00
{132} 		00 00 00 00
{133} 		00 00 00 00
{134} 		00 00 00 00
{135} 		00 00 00 00
{136} 		00 00 00 00
{137} 		00 00 00 00
{138} 		00 00 00 00
{139} 		00 00 00 00
{140} 		00 00 00 00
{141} 		00 00 00 00
{142} 		00 00 00 00
{143} 		00 00 00 00
{144} 		00 00 00 00
{145} 		00 00 00 00
{146} 		00 00 00 00
{147} 		00 00 00 00
{148} 		00 00 00 00
{149} 		00 00 00 00
{150} 		00 00 00 00
{151} 		00 00 00 00
{152} 		00 00 00 00
{153} 		00 00 00 00
{154} 		00 00 00 00
{155} 		00 00 00 00
{156} 		00 00 00 00
{157} 		00 00 00 00
{158} 		00 00 00 00
{159} 		00 00 00 00
{160} 		00 00 00 00
{161} 		00 00 00 00
{162} 		00 00 00 00
{163} 		00 00 00 00
{164} 		00 00 00 00
{165} 		00 00 00 00
{166} 		00 00 00 00
{167} 		00 00 00 00
{168} 		00 00 00 00
{169} 		00 00 00 00
{170} 		00 00 00 00
{171} 		00 00 00 00
{172} 		00 00 00 00
{173} 		00 00 00 00
{174} 		00 00 00 00
{175} 		00 00 00 00
{176} 		00 00 00 00
{177} 		00 00 00 00
{178} 		00 00 00 00
{179} 		00 00 00 00
{180} 		00 00 00 00
{181} 		00 00 00 00
{182} 		00 00 00 00
{183} 		00 00 00 00
{184} 		00 00 00 00
{185} 		00 00 00 00
{186} 		00 00 00 00
{187} 		00 00 00 00
{188} 		00 00 00 00
{189} 		00 00 00 00
{190} 		00 00 00 00
{191} 		00 00 00 00
{192} 		00 00 00 00
{193} 		00 00 00 00
{194} 		00 00 00 00
{195} 		00 00 00 00
{196} 		00 00 00 00
{197} 		00 00 00 00
{198} 		00 00 00 00
{199} 		00 00 00 00
{200} 		00 00 00 00
{201} 		00 00 00 00
{202} 		00 00 00 00
{203} 		00 00 00 00
{204} 		00 00 00 00
{205} 		00 00 00 00
{206} 		00 00 00 00
{207} 		00 00 00 00
{208} 		00 00 00 00
{209} 		00 00 00 00
{210} 		00 00 00 00
{211} 		00 00 00 00
{212} 		00 00 00 00
{213} 		00 00 00 00
{214} 		00 00 00 00
{215} 		00 00 00 00
{216} 		00 00 00 00
{217} 		00 00 00 00
{218} 		00 00 00 00
{219} 		00 00 00 00
{220} 		00 00 00 00
{221} 		00 00 00 00
{222} 		00 00 00 00
{223} 		00 00 00 00
{224} 		00 00 00 00
{225} 		00 00 00 00
{226} 		00 00 00 00
{227} 		00 00 00 00
{228} 		00 00 00 00
{229} 		00 00 00 00
{230} 		00 00 00 00
{231} 		00 00 00 00
{232} 		00 00 00 00
{233} 		00 00 00 00
{234} 		00 00 00 00
{235} 		00 00 00 00
{236} 		00 00 00 00
{237} 		00 00 00 00
{238} 		00 00 00 00
{239} 		00 00 00 00
{240} 		00 00 00 00
{241} 		00 00 00 00
{242} 		00 00 00 00
{243} 		00 00 00 00
{244} 		00 00 00 00
{245} 		00 00 00 00
{246} 		00 00 00 00
{247} 		00 00 00 00
{248} 		00 00 00 00
{249} 		00 00 00 00
{250} 		00 00 00 00
{251} 		00 00 00 00
{252} 		00 00 00 00
{253} 		00 00 00 00
{254} 		00 00 00 00
{255} 		00 00 00 00
{256} 		00 00 00 00
{257} 		00 00 00 00
{258} 		00 00 00 00
{259} 		00 00 00 00
{260} 		00 00 00 00
{261} 		00 00 00 00
{262} 		00 00 00 00
{263} 		00 00 00 00
{264} 		00 00 00 00
{265} 		00 00 00 00
{266} 		00 00 00 00
{267} 		00 00 00 00
{268} 		00 00 00 00
{269} 		00 00 00 00
{270} 		00 00 00 00
{271} 		00 00 00 00
{272} 		00 00 00 00
{273} 		00 00 00 00
{274} 		00 00 00 00
{275} 		00 00 00 00
{276} 		00 00 00 00
{277} 		00 00 00 00
{278} 		00 00 00 00
{279} 		00 00 00 00
{280} 		00 00 00 00
{281} 		00 00 00 00
{282} 		00 00 00 00
{283} 		00 00 00 00
{284} 		00 00 00 00
{285} 		00 00 00 00
{286} 		00 00 00 00
{287} 		00 00 00 00
{288} 		00 00 00 00
{289} 		00 00 00 00
{290} 		00 00 00 00
{291} 		00 00 00 00
{292} 		00 00 00 00
{293} 		00 00 00 00
{294} 		00 00 00 00
{295} 		00 00 00 00
{296} 		00 00 00 00
{297} 		00 00 00 00
{298} 		00 00 00 00
{299} 		00 00 00 00
{300} 		00 00 00 00
{301} 		00 00 00 00
{302} 		00 00 00 00
{303} 		00 00 00 00
{304} 		00 00 00 00
{305} 		00 00 00 00
{306} 		00 00 00 00
{307} 		00 00 00 00
{308} 		00 00 00 00
{309} 		00 00 00 00
{310} 		00 00 00 00
{311} 		00 00 00 00
{312} 		00 00 00 00
{313} 		00 00 00 00
{314} 		00 00 00 00
{315} 		00 00 00 00
{316} 		00 00 00 00
{317} 		00 00 00 00
{318} 		00 00 00 00
{319} 		00 00 00 00
{320} 		00 00 00 00
{321} 		00 00 00 00
{322} 		00 00 00 00
{323} 		00 00 00 00
{324} 		00 00 00 00
{325} 		00 00 00 00
{326} 		00 00 00 00
{327} 		00 00 00 00
{328} 		00 00 00 00
{329} 		00 00 00 00
{330} 		00 00 00 00
{331} 		00 00 00 00
{332} 		00 00 00 00
{333} 		00 00 00 00
{334} 		00 00 00 00
{335} 		00 00 00 00
{336} 		00 00 00 00
{337} 		00 00 00 00
{338} 		00 00 00 00
{339} 		00 00 00 00
{340} 		00 00 00 00
{341} 		00 00 00 00
{342} 		00 00 00 00
{343} 		00 00 00 00
{344} 		00 00 00 00
{345} 		00 00 00 00
{346} 		00 00 00 00
{347} 		00 00 00 00
{348} 		00 00 00 00
{349} 		00 00 00 00
{350} 		00 00 00 00
{351} 		00 00 00 00
{352} 		00 00 00 00
{353} 		00 00 00 00
{354} 		00 00 00 00
{355} 		00 00 00 00
{356} 		00 00 00 00
{357} 		00 00 00 00
{358} 		00 00 00 00
{359} 		00 00 00 00
{360} 		00 00 00 00
{361} 		00 00 00 00
{362} 		00 00 00 00
{363} 		00 00 00 00
{364} 		00 00 00 00
{365} 		00 00 00 00
{366} 		00 00 00 00
{367} 		00 00 00 00
{368} 		00 00 00 00
{369} 		00 00 00 00
{370} 		00 00 00 00
{371} 		00 00 00 00
{372} 		00 00 00 00
{373} 		00 00 00 00
{374} 		00 00 00 00
{375} 		00 00 00 00
{376} 		00 00 00 00
{377} 		00 00 00 00
{378} 		00 00 00 00
{379} 		00 00 00 00
{380} 		00 00 00 00
{381} 		00 00 00 00
{382} 		00 00 00 00
{383} 		00 00 00 00
{384} 		00 00 00 00
{385} 		00 00 00 00
{386} 		00 00 00 00
{387} 		00 00 00 00
{388} 		00 00 00 00
{389} 		00 00 00 00
{390} 		00 00 00 00
{391} 		00 00 00 00
{392} 		00 00 00 00
{393} 		00 00 00 00
{394} 		00 00 00 00
{395} 		00 00 00 00
{396} 		00 00 00 00
{397} 		00 00 00 00
{398} 		00 00 00 00
{399} 		00 00 00 00
{400} 		00 00 00 00
{401} 		00 00 00 00
{402} 		00 00 00 00
{403} 		00 00 00 00
{404} 		00 00 00 00
{405} 		00 00 00 00
{406} 		00 00 00 00
{407} 		00 00 00 00
{408} 		00 00 00 00
{409} 		00 00 00 00
{410} 		00 00 00 00
{411} 		00 00 00 00
{412} 		00 00 00 00
{413} 		00 00 00 00
{414} 		00 00 00 00
{415} 		00 00 00 00
{416} 		00 00 00 00
{417} 		00 00 00 00
{418} 		00 00 00 00
{419} 		00 00 00 00
{420} 		00 00 00 00
{421} 		00 00 00 00
{422} 		00 00 00 00
{423} 		00 00 00 00
{424} 		00 00 00 00
{425} 		00 00 00 00
{426} 		00 00 00 00
{427} 		00 00 00 00
{428} 		00 00 00 00
{429} 		00 00 00 00
{430} 		00 00 00 00
{431} 		00 00 00 00
{432} 		00 00 00 00
{433} 		00 00 00 00
{434} 		00 00 00 00
{435} 		00 00 00 00
{436} 		00 00 00 00
{437} 		00 00 00 00
{438} 		00 00 00 00
{439} 		00 00 00 00
{440} 		00 00 00 00
{441} 		00 00 00 00
{442} 		00 00 00 00
{443} 		00 00 00 00
{444} 		00 00 00 00
{445} 		00 00 00 00
{446} 		00 00 00 00
{447} 		00 00 00 00
{448} 		00 00 00 00
{449} 		00 00 00 00
{450} 		00 00 00 00
{451} 		00 00 00 00
{452} 		00 00 00 00
{453} 		00 00 00 00
{454} 		00 00 00 00
{455} 		00 00 00 00
{456} 		00 00 00 00
{457} 		00 00 00 00
{458} 		00 00 00 00
{459} 		00 00 00 00
{460} 		00 00 00 00
{461} 		00 00 00 00
{462} 		00 00 00 00
{463} 		00 00 00 00
{464} 		00 00 00 00
{465} 		00 00 00 00
{466} 		00 00 00 00
{467} 		00 00 00 00
{468} 		00 00 00 00
{469} 		00 00 00 00
{470} 		00 00 00 00
{471} 		00 00 00 00
{472} 		00 00 00 00
{473} 		00 00 00 00
{474} 		00 00 00 00
{475} 		00 00 00 00
{476} 		00 00 00 00
{477} 		00 00 00 00
{478} 		00 00 00 00
{479} 		00 00 00 00
{480} 		00 00 00 00
{481} 		00 00 00 00
{482} 		00 00 00 00
{483} 		00 00 00 00
{484} 		00 00 00 00
{485} 		00 00 00 00
{486} 		00 00 00 00
{487} 		00 00 00 00
{488} 		00 00 00 00
{489} 		00 00 00 00
{490} 		00 00 00 00
{491} 		00 00 00 00
{492} 		00 00 00 00
{493} 		00 00 00 00
{494} 		00 00 00 00
{495} 		00 00 00 00
{496} 		00 00 00 00
{497} 		00 00 00 00
{498} 		00 00 00 00
{499} 		00 00 00 00
{500} 		00 00 00 00
{501} 		00 00 00 00
{502} 		00 00 00 00
{503} 		00 00 00 00
{504} 		00 00 00 00
{505} 		00 00 00 00
{506} 		00 00 00 00
{507} 		00 00 00 00
{508} 		00 00 00 00
{509} 		00 00 00 00
{510} 		00 00 00 00
{511} 		00 00 00 00
{512} 		00 00 00 00
{513} 		00 00 00 00
{514} 		00 00 00 00
{515} 		00 00 00 00
{516} 		00 00 00 00
{517} 		00 00 00 00
{518} 		00 00 00 00
{519} 		00 00 00 00
{520} 		00 00 00 00
{521} 		00 00 00 00
{522} 		00 00 00 00
{523} 		00 00 00 00
{524} 		00 00 00 00
{525} 		00 00 00 00
{526} 		00 00 00 00
{527} 		00 00 00 00
{528} 		00 00 00 00
{529} 		00 00 00 00
{530} 		00 00 00 00
{531} 		00 00 00 00
{532} 		00 00 00 00
{533} 		00 00 00 00
{534} 		00 00 00 00
{535} 		00 00 00 00
{536} 		00 00 00 00
{537} 		00 00 00 00
{538} 		00 00 00 00
{539} 		00 00 00 00
{540} 		00 00 00 00
{541} 		00 00 00 00
{542} 		00 00 00 00
{543} 		00 00 00 00
{544} 		00 00 00 00
{545} 		00 00 00 00
{546} 		00 00 00 00
{547} 		00 00 00 00
{548} 		00 00 00 00
{549} 		00 00 00 00
{550} 		00 00 00 00
{551} 		00 00 00 00
{552} 		00 00 00 00
{553} 		00 00 00 00
{554} 		00 00 00 00
{555} 		00 00 00 00
{556} 		00 00 00 00
{557} 		00 00 00 00
{558} 		00 00 00 00
{559} 		00 00 00 00
{560} 		00 00 00 00
{561} 		00 00 00 00
{562} 		00 00 00 00
{563} 		00 00 00 00
{564} 		00 00 00 00
{565} 		00 00 00 00
{566} 		00 00 00 00
{567} 		00 00 00 00
{568} 		00 00 00 00
{569} 		00 00 00 00
{570} 		00 00 00 00
{571} 		00 00 00 00
{572} 		00 00 00 00
{573} 		00 00 00 00
{574} 		00 00 00 00
{575} 		00 00 00 00
{576} 		00 00 00 00
{577} 		00 00 00 00
{578} 		00 00 00 00
{579} 		00 00 00 00
{580} 		00 00 00 00
{581} 		00 00 00 00
{582} 		00 00 00 00
{583} 		00 00 00 00
{584} 		00 00 00 00
{585} 		00 00 00 00
{586} 		00 00 00 00
{587} 		00 00 00 00
{588} 		00 00 00 00
{589} 		00 00 00 00
{590} 		00 00 00 00
{591} 		00 00 00 00
{592} 		00 00 00 00
{593} 		00 00 00 00
{594} 		00 00 00 00
{595} 		00 00 00 00
{596} 		00 00 00 00
{597} 		00 00 00 00
{598} 		00 00 00 00
{599} 		00 00 00 00
{600} 		00 00 00 00
{601} 		00 00 00 00
{602} 		00 00 00 00
{603} 		00 00 00 00
{604} 		00 00 00 00
{605} 		00 00 00 00
{606} 		00 00 00 00
{607} 		00 00 00 00
{608} 		00 00 00 00
{609} 		00 00 00 00
{610} 		00 00 00 00
{611} 		00 00 00 00
{612} 		00 00 00 00
{613} 		00 00 00 00
{614} 		00 00 00 00
{615} 		00 00 00 00
{616} 		00 00 00 00
{617} 		00 00 00 00
{618} 		00 00 00 00
{619} 		00 00 00 00
{620} 		00 00 00 00
{621} 		00 00 00 00
{622} 		00 00 00 00
{623} 		00 00 00 00
{624} 		00 00 00 00
{625} 		00 00 00 00
{626} 		00 00 00 00
{627} 		00 00 00 00
{628} 		00 00 00 00
{629} 		00 00 00 00
{630} 		00 00 00 00
{631} 		00 00 00 00
{632} 		00 00 00 00
{633} 		00 00 00 00
{634} 		00 00 00 00
{635} 		00 00 00 00
{636} 		00 00 00 00
{637} 		00 00 00 00
{638} 		00 00 00 00
{639} 		00 00 00 00
{640} 		00 00 00 00
{641} 		00 00 00 00
{642} 		00 00 00 00
{643} 		00 00 00 00
{644} 		00 00 00 00
{645} 		00 00 00 00
{646} 		00 00 00 00
{647} 		00 00 00 00
{648} 		00 00 00 00
{649} 		00 00 00 00
{650} 		00 00 00 00
{651} 		00 00 00 00
{652} 		00 00 00 00
{653} 		00 00 00 00
{654} 		00 00 00 00
{655} 		00 00 00 00
{656} 		00 00 00 00
{657} 		00 00 00 00
{658} 		00 00 00 00
{659} 		00 00 00 00
{660} 		00 00 00 00
{661} 		00 00 00 00
{662} 		00 00 00 00
{663} 		00 00 00 00
{664} 		00 00 00 00
{665} 		00 00 00 00
{666} 		00 00 00 00
{667} 		00 00 00 00
{668} 		00 00 00 00
{669} 		00 00 00 00
{670} 		00 00 00 00
{671} 		00 00 00 00
{672} 		00 00 00 00
{673} 		00 00 00 00
{674} 		00 00 00 00
{675} 		00 00 00 00
{676} 		00 00 00 00
{677} 		00 00 00 00
{678} 		00 00 00 00
{679} 		00 00 00 00
{680} 		00 00 00 00
{681} 		00 00 00 00
{682} 		00 00 00 00
{683} 		00 00 00 00
{684} 		00 00 00 00
{685} 		00 00 00 00
{686} 		00 00 00 00
{687} 		00 00 00 00
{688} 		00 00 00 00
{689} 		00 00 00 00
{690} 		00 00 00 00
{691} 		00 00 00 00
{692} 		00 00 00 00
{693} 		00 00 00 00
{694} 		00 00 00 00
{695} 		00 00 00 00
{696} 		00 00 00 00
{697} 		00 00 00 00
{698} 		00 00 00 00
{699} 		00 00 00 00
{700} 		00 00 00 00
{701} 		00 00 00 00
{702} 		00 00 00 00
{703} 		00 00 00 00
{704} 		00 00 00 00
{705} 		00 00 00 00
{706} 		00 00 00 00
{707} 		00 00 00 00
{708} 		00 00 00 00
{709} 		00 00 00 00
{710} 		00 00 00 00
{711} 		00 00 00 00
{712} 		00 00 00 00
{713} 		00 00 00 00
{714} 		00 00 00 00
{715} 		00 00 00 00
{716} 		00 00 00 00
{717} 		00 00 00 00
{718} 		00 00 00 00
{719} 		00 00 00 00
{720} 		00 00 00 00
{721} 		00 00 00 00
{722} 		00 00 00 00
{723} 		00 00 00 00
{724} 		00 00 00 00
{725} 		00 00 00 00
{726} 		00 00 00 00
{727} 		00 00 00 00
{728} 		00 00 00 00
{729} 		00 00 00 00
{730} 		00 00 00 00
{731} 		00 00 00 00
{732} 		00 00 00 00
{733} 		00 00 00 00
{734} 		00 00 00 00
{735} 		00 00 00 00
{736} 		00 00 00 00
{737} 		00 00 00 00
{738} 		00 00 00 00
{739} 		00 00 00 00
{740} 		00 00 00 00
{741} 		00 00 00 00
{742} 		00 00 00 00
{743} 		00 00 00 00
{744} 		00 00 00 00
{745} 		00 00 00 00
{746} 		00 00 00 00
{747} 		00 00 00 00
{748} 		00 00 00 00
{749} 		00 00 00 00
{750} 		00 00 00 00
{751} 		00 00 00 00
{752} 		00 00 00 00
{753} 		00 00 00 00
{754} 		00 00 00 00
{755} 		00 00 00 00
{756} 		00 00 00 00
{757} 		00 00 00 00
{758} 		00 00 00 00
{759} 		00 00 00 00
{760} 		00 00 00 00
{761} 		00 00 00 00
{762} 		00 00 00 00
{763} 		00 00 00 00
{764} 		00 00 00 00
{765} 		00 00 00 00
{766} 		00 00 00 00
{767} 		00 00 00 00
{768} 		00 00 00 00
{769} 		00 00 00 00
{770} 		00 00 00 00
{771} 		00 00 00 00
{772} 		00 00 00 00
{773} 		00 00 00 00
{774} 		00 00 00 00
{775} 		00 00 00 00
{776} 		00 00 00 00
{777} 		00 00 00 00
{778} 		00 00 00 00
{779} 		00 00 00 00
{780} 		00 00 00 00
{781} 		00 00 00 00
{782} 		00 00 00 00
{783} 		00 00 00 00
{784} 		00 00 00 00
{785} 		00 00 00 00
{786} 		00 00 00 00
{787} 		00 00 00 00
{788} 		00 00 00 00
{789} 		00 00 00 00
{790} 		00 00 00 00
{791} 		00 00 00 00
{792} 		00 00 00 00
{793} 		00 00 00 00
{794} 		00 00 00 00
{795} 		00 00 00 00
{796} 		00 00 00 00
{797} 		00 00 00 00
{798} 		00 00 00 00
{799} 		00 00 00 00
{800} 		00 00 00 00
{801} 		00 00 00 00
{802} 		00 00 00 00
{803} 		00 00 00 00
{804} 		00 00 00 00
{805} 		00 00 00 00
{806} 		00 00 00 00
{807} 		00 00 00 00
{808} 		00 00 00 00
{809} 		00 00 00 00
{810} 		00 00 00 00
{811} 		00 00 00 00
{812} 		00 00 00 00
{813} 		00 00 00 00
{814} 		00 00 00 00
{815} 		00 00 00 00
{816} 		00 00 00 00
{817} 		00 00 00 00
{818} 		00 00 00 00
{819} 		00 00 00 00
{820} 		00 00 00 00
{821} 		00 00 00 00
{822} 		00 00 00 00
{823} 		00 00 00 00
{824} 		00 00 00 00
{825} 		00 00 00 00
{826} 		00 00 00 00
{827} 		00 00 00 00
{828} 		00 00 00 00
{829} 		00 00 00 00
{830} 		00 00 00 00
{831} 		00 00 00 00
{832} 		00 00 00 00
{833} 		00 00 00 00
{834} 		00 00 00 00
{835} 		00 00 00 00
{836} 		00 00 00 00
{837} 		00 00 00 00
{838} 		00 00 00 00
{839} 		00 00 00 00
{840} 		00 00 00 00
{841} 		00 00 00 00
{842} 		00 00 00 00
{843} 		00 00 00 00
{844} 		00 00 00 00
{845} 		00 00 00 00
{846} 		00 00 00 00
{847} 		00 00 00 00
{848} 		00 00 00 00
{849} 		00 00 00 00
{850} 		00 00 00 00
{851} 		00 00 00 00
{852} 		00 00 00 00
{853} 		00 00 00 00
{854} 		00 00 00 00
{855} 		00 00 00 00
{856} 		00 00 00 00
{857} 		00 00 00 00
{858} 		00 00 00 00
{859} 		00 00 00 00
{860} 		00 00 00 00
{861} 		00 00 00 00
{862} 		00 00 00 00
{863} 		00 00 00 00
{864} 		00 00 00 00
{865} 		00 00 00 00
{866} 		00 00 00 00
{867} 		00 00 00 00
{868} 		00 00 00 00
{869} 		00 00 00 00
{870} 		00 00 00 00
{871} 		00 00 00 00
{872} 		00 00 00 00
{873} 		00 00 00 00
{874} 		00 00 00 00
{875} 		00 00 00 00
{876} 		00 00 00 00
{877} 		00 00 00 00
{878} 		00 00 00 00
{879} 		00 00 00 00
{880} 		00 00 00 00
{881} 		00 00 00 00
{882} 		00 00 00 00
{883} 		00 00 00 00
{884} 		00 00 00 00
{885} 		00 00 00 00
{886} 		00 00 00 00
{887} 		00 00 00 00
{888} 		00 00 00 00
{889} 		00 00 00 00
{890} 		00 00 00 00
{891} 		00 00 00 00
{892} 		00 00 00 00
{893} 		00 00 00 00
{894} 		00 00 00 00
{895} 		00 00 00 00
{896} 		00 00 00 00
{897} 		00 00 00 00
{898} 		00 00 00 00
{899} 		00 00 00 00
{900} 		00 00 00 00
{901} 		00 00 00 00
{902} 		00 00 00 00
{903} 		00 00 00 00
{904} 		00 00 00 00
{905} 		00 00 00 00
{906} 		00 00 00 00
{907} 		00 00 00 00
{908} 		00 00 00 00
{909} 		00 00 00 00
{910} 		00 00 00 00
{911} 		00 00 00 00
{912} 		00 00 00 00
{913} 		00 00 00 00
{914} 		00 00 00 00
{915} 		00 00 00 00
{916} 		00 00 00 00
{917} 		00 00 00 00
{918} 		00 00 00 00
{919} 		00 00 00 00
{920} 		00 00 00 00
{921} 		00 00 00 00
{922} 		00 00 00 00
{923} 		00 00 00 00
{924} 		00 00 00 00
{925} 		00 00 00 00
{926} 		00 00 00 00
{927} 		00 00 00 00
{928} 		00 00 00 00
{929} 		00 00 00 00
{930} 		00 00 00 00
{931} 		00 00 00 00
{932} 		00 00 00 00
{933} 		00 00 00 00
{934} 		00 00 00 00
{935} 		00 00 00 00
{936} 		00 00 00 00
{937} 		00 00 00 00
{938} 		00 00 00 00
{939} 		00 00 00 00
{940} 		00 00 00 00
{941} 		00 00 00 00
{942} 		00 00 00 00
{943} 		00 00 00 00
{944} 		00 00 00 00
{945} 		00 00 00 00
{946} 		00 00 00 00
{947} 		00 00 00 00
{948} 		00 00 00 00
{949} 		00 00 00 00
{950} 		00 00 00 00
{951} 		00 00 00 00
{952} 		00 00 00 00
{953} 		00 00 00 00
{954} 		00 00 00 00
{955} 		00 00 00 00
{956} 		00 00 00 00
{957} 		00 00 00 00
{958} 		00 00 00 00
{959} 		00 00 00 00
{960} 		00 00 00 00
{961} 		00 00 00 00
{962} 		00 00 00 00
{963} 		00 00 00 00
{964} 		00 00 00 00
{965} 		00 00 00 00
{966} 		00 00 00 00
{967} 		00 00 00 00
{968} 		00 00 00 00
{969} 		00 00 00 00
{970} 		00 00 00 00
{971} 		00 00 00 00
{972} 		00 00 00 00
{973} 		00 00 00 00
{974} 		00 00 00 00
{975} 		00 00 00 00
{976} 		00 00 00 00
{977} 		00 00 00 00
{978} 		00 00 00 00
{979} 		00 00 00 00
{980} 		00 00 00 00
{981} 		00 00 00 00
{982} 		00 00 00 00
{983} 		00 00 00 00
{984} 		00 00 00 00
{985} 		00 00 00 00
{986} 		00 00 00 00
{987} 		00 00 00 00
{988} 		00 00 00 00
{989} 		00 00 00 00
{990} 		00 00 00 00
{991} 		00 00 00 00
{992} 		00 00 00 00
{993} 		00 00 00 00
{994} 		00 00 00 00
{995} 		00 00 00 00
{996} 		00 00 00 00
{997} 		00 00 00 00
{998} 		00 00 00 00
{999} 		00 00 00 00
end